//
//  NSBundle+Language.h
//  IMIHome
//
//  Created by OrrHsiao on 2021/7/5.
//  Copyright © 2021 上海创米科技有限公司. All rights reserved.
//  对于第三方库的国际化实现，如MJRefresh，实现逻辑是根据系统当前偏好语言，从mainBundle中取国际化字符串
//  取不到则从MJRefresh.bundle中的本地化字符串;
//  为了实现App整体手动切换语言功能，本类替换了系统的[NSBundle mainBundle]为NSBundle子类，并重写了localizedStringForKey:key value:value table:tableName方法
//  调用该方法时,[NSBundle mainBundle]会被替换为按App当前语言获取的bundle,如app语言为en,bundle则为en.lporj
//  这意味着采用[[NSBundle mainBundle] localizedStringForKey:key value:value table:tableName]方法去获取国际化字符串时，
//  都会从我们项目对应语言的文件(如en.lporj)中取值，如果没有取到值,则会从MJRefresh.bundle中取值
//  所以我们必须保证Localizable.strings文件中包含第三方库的国际化资源,否则MJRefresh.bundle取值会去取系统当前偏好语言里的对应的国际化字符串
//  tableName传入nil时，会在bundle的Localizable.strings里查找

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@interface NSBundle (Language)

/// 设置App语言
/// @param language <#language description#>
//+ (void)setLanguage:(NSString *)language;

@end

NS_ASSUME_NONNULL_END
